14602
156
Tehát gondjaim vannak a list :: sort () helyes használatának kiderítésével kapcsolatban a struktúrák listájával kapcsolatban. Itt van a vonatkozó kód:
strukturált hallgató
{
char firstnm [20],
lastnm [20];
int id,
fokozat;
};
lista  sList;
// Irreleváns kód ...
cout << "Kérjük, adja meg saját nevét, azonosítóját és osztályzatát. (Például: első mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (adatok);
sList.sort ();
A probléma, amelyet megpróbálok megoldani, az sList.sort () használata az id szerinti rendezéshez. Azonban fogalmam sincs, hogyan kell helyesen átadni a list :: sort () fájlba. Előre is köszönöm a segítséget / időt!
EDIT: A megoldás egyszerűen ezt adta hozzá a struktúrámhoz
bool operátor <(const hallgató és cmp) const {
visszatérési azonosító 
                                
Meg kell nézni az std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Ennek a függvénynek több meghatározása van, és egy, ahol megadhatja, hogy mit szeretne rendezni.
Vessen egy pillantást arra a bejegyzésre, szerintem erre van szüksége: https://stackoverflow.com/a/21234017/6663947
Szerkesztés:
ez például egy összehasonlító:
sList.sort ([] (konst hallgató & a, konst hallgató & b) {return a.id 
void sort (Összehasonlítja a komp);
Feltéve, hogy növekvő sorrendben szeretné rendezni a listában szereplő diákobjektumokat a kulcsazonosító szerint. Vagy meghatározhatja a